The present invention relates to peer-to-peer communications services, and more particularly, to data models for supporting peer-to-peer services.
Peer-to-peer networks are formed by linking peer nodes to each other directly. Peer-to-peer networking architectures have been used for media-intensive services such as file sharing services. The peer nodes in such services are generally anonymous and are not capable of supporting an on-line community.
Most on-line communities are formed using server-based software applications. For example, server-based systems are available that allow users to register with a service and to share information about themselves with fellow users of the service. This type of arrangement is typically based on a central database that stores information for each of the participating users.
The use of peer-based communications systems for forming on-line communities holds the potential of being rapidly extensible to large numbers of users and more robust than conventional server-based arrangements. However, a suitable database system is required to support peer-based on-line communities.
Graph-based data models dominated early database systems. With this type of approach, pointers were used to explicitly link data items together.
Because of the inefficiencies associated with chasing links and detecting loops, graph-based databases were largely supplanted by relational database models in the 1980s. In relational databases, data is stored in a variety of tables. Database commands are used to retrieve data from the tables and to process the retrieved data to perform desired functions.
Relational databases generally have a small number of data types and relatively few links need to be formed between data types. As a result, it is usually practical to customize relational database software to optimize performance. For example, a particular look-up query may be hard coded, so that the data in certain tables can be accessed and processed efficiently. It is difficult, however, to use relational data model to capture web-type data effectively.
The development of object oriented programming languages led to the introduction of object-oriented databases in which data linkages were expressed explicitly by an object schema. Object relational databases attempt to capture some of the advantages of both relational and object oriented models and provide schema-based linkages between relational data. Object oriented data models are not entirely suitable for use in peer-based communications systems, because object oriented data models impose a distinction between the representation of data and the relationships between data items that can make these data models inefficient.
Semi-structured data models flourished in the 1990s with the development of hypertext markup language (HTML) and the world wide web and the introduction of extensible markup language (XML) architectures. Web browsers are not, however, capable of executing database operations such as filtering by content, performing operations on content, selectively retrieving data, etc.
It is an object of the present invention to provide a data model suitable for supporting peer-to-peer communications services such as those having many different types of data and large numbers of links between data items.